/*
 * I_DataSink.java
 */

package pipeline;


/**
 * A data sink for the pipeline.
 *
 *
 * @author Luca Molari
 * @param <T> the input item's type.
 */
public interface I_DataSink<T> {

	
    /**
     * Put an item.
     *
     * @param d the item.
     * @throws InterruptedException if a blocking call in underlying implementation
     * does so.
     */
    public void put(T d) throws InterruptedException;

    /**
     * Close the sink. If connected to a source (as in interstage), this
     * can be used to force a SourceClosedException.
     */
    public void close();
    
}
